package com.deft.design.template;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Map;

/**
 * 基础电商推广服务
 * 1. 生成最优价商品海报
 * 2. 海报含有推广邀请码
 *
 * @author Hide丶love
 * @date 2022/05/30
 **/
public abstract class NetMall {

    protected Logger logger = LoggerFactory.getLogger(NetMall.class);

    /**
     * 用户ID
     */
    String uId;

    /**
     * 用户密码
     */
    String uPwd;

    public NetMall(String uId, String uPwd) {
        this.uId = uId;
        this.uPwd = uPwd;
    }

    /**
     * 生成商品推广海报
     * @param skuUrl 商品地址（京东、当当、淘宝）
     * @return 海报图片base64地址
     */
    public String generateGoodsPoster(String skuUrl) {
        if (!login(uId, uPwd)) {
            return null;
        }
        Map<String, String> map = reptile(skuUrl);
        return createBase64(map);
    }

    /**
     * 模拟登录
     * @param uId 用户ID
     * @param uPwd 用户密码
     * @return 是否登录成功
     */
    protected abstract Boolean login(String uId, String uPwd);

    /**
     * 爬虫提取商品信息（登录后的优惠价格）
     * @param skuUrl 商品地址
     * @return 商品信息
     */
    protected abstract Map<String, String> reptile(String skuUrl);

    /**
     * 生成海报商品信息
     * @param map 商品信息
     * @return 海报图片base64地址
     */
    protected abstract String createBase64(Map<String, String> map);
}
